// Copyright )1997 Easter-eggs. All Rights Reserved.

DefConst('kEERecodeUnitName, "EERecode");
DefConst('kEERecodeUnitString, "Recode:Eggs");
DefConst('kEERecodeUnitSymbol, Intern(kEERecodeUnitString));
DefConst('kEERecodeMajorVersion, 1);
DefConst('kEERecodeMinorVersion, 0);
DefConst('kEERecodeVersionString, kEERecodeMajorVersion & $. & kEERecodeMinorVersion);

DefConst('kMacOSCharset, 'mac);
DefConst('kMSDOSCharset, 'msdos);
DefConst('kNewtonCharset, 'newton);
DefConst('kUnixCharset, 'unix);
DefConst('kWindowsCharset, 'windows);

DefConst('kCharsetLabelCommands, [
			{
				item: if language = 'french then
						"MacOS"
					else
						"MacOS",
				symbol: kMacOSCharset,
			},
			{
				item: if language = 'french then
						"MSDOS"
					else
						"MSDOS",
				symbol: kMSDOSCharset,
			},
			{
				item: if language = 'french then
						"Newton"
					else
						"Newton",
				symbol: kNewtonCharset,
			},
			{
				item: if language = 'french then
						"Unix"
					else
						"Unix",
				symbol: kUnixCharset,
			},
			{
				item: if language = 'french then
						"Windows"
					else
						"Windows",
				symbol: kWindowsCharset,
			},
		]);

DefConst('kEERecodeUnitDeclaration, {
			EEChr: 0,
			EEOrd: 1,
			EEExtractCString: 2,
			EEStuffCString: 3,
			EEConvertBinaryToString: 4,
			EEConvertStringToBinary: 5,
			EEConvertArrayToString: 6,
			EEConvertStringToArray: 7,
			EEExtractString: 8,
			EEAppendArrayToBinary: 9,
			EEConvertStringToFile: 10,
			EEConvertFileToString: 11,
			EEBinaryCharsCount: 12,
			eeRecoder: 13,
			EEGetLineSeparator: 14,
		});

DeclareUnit(kEERecodeUnitSymbol, kEERecodeMajorVersion, kEERecodeMinorVersion, kEERecodeUnitDeclaration);
if kAppSymbol <> kEERecodeUnitSymbol then
	begin
		DeclareGlobalFn('ImpureUnitReference, 2);
		DefGlobalFn('ImpureUnitReference, constantFunctions.UnitReference);
		foreach slot, value in kEERecodeUnitDeclaration do
			DefConst(slot, ImpureUnitReference(kEERecodeUnitSymbol, slot));
	end;
